home *** CD-ROM | disk | FTP | other *** search
- /*________________________________________________________________________________
- ________________________________________________________________________________*/
-
- #pragma once
-
-
- #if ! DEBUG
- #undef USE_SYM_DEBUG_LEAKS
- #define USE_SYM_DEBUG_LEAKS 0
- #endif
-
- #ifdef __cplusplus
- extern "C" {
- #endif
-
-
- #if USE_DEBUG_LEAKS // [
-
- // stack crawl requires A6 frames
- #ifdef __MWERKS__
- #if GENERATING68K
- #pragma a6frames on
- #endif
- #endif
-
- // this enum can be used to describe which routine allocated the item
- // in question. By remembering exactly which routine made the allocation,
- // tracking down the offending code is easier.
- typedef enum
- {
- kLeaks_NewHandle = 0,
- kLeaks_NewHandleClear,
- kLeaks_NewHandleSys,
- kLeaks_NewHandleSysClear,
- kLeaks_HandToHand,
- kLeaks_TempNewHandle,
- kLeaks_PtrToHand,
-
- kLeaks_NewPtr,
- kLeaks_NewPtrClear,
- kLeaks_NewPtrSys,
- kLeaks_NewPtrSysClear,
-
- kLeaks_NewRgn,
-
- kLeaks_DetachResource,
- kLeaks_RemoveResource,
-
- kLeaks_GetMenuBar,
- kLeaks_GetNewMBar,
- kLeaks_NewMenu,
-
- kLeaks_NewWindow,
- kLeaks_NewCWindow,
- kLeaks_GetNewWindow,
- kLeaks_GetNewCWindow,
-
- kLeaks_NewDialog,
- kLeaks_GetNewDialog,
-
- kLeaks_OperatorNew,
-
- kLeaks_NewIconSuite,
- kLeaks_GetIconSuite,
-
- kLeaks_ManualHandle,
- kLeaks_ManualPtr,
- kLeaks_ManualObject,
-
- kLeaks_NewAlias,
- kLeaks_NewAliasMinimal,
- kLeaks_NewAliasMinimalFromFullPath,
-
- kLeaks_AECreateDesc,
- kLeaks_AECoercePtr,
- kLeaks_AECoerceDesc,
- kLeaks_AEDuplicateDesc,
- kLeaks_AECreateList,
- kLeaks_AEGetNthDesc,
- kLeaks_AEGetParamDesc,
- kLeaks_AEGetAttributeDesc,
- kLeaks_AECreateAppleEvent,
- kLeaks_AESend,
- kLeaks_AEGetTheCurrentEvent,
- kLeaks_AEResolve,
- kLeaks_CreateOffsetDescriptor,
- kLeaks_CreateCompDescriptor,
- kLeaks_CreateLogicalDescriptor,
- kLeaks_CreateObjSpecifier,
- kLeaks_CreateRangeDescriptor,
-
- kLeaks_Dummy
- } DebugLeaksHowAllocated;
-
-
- void DebugLeaks_Init( void );
- void DebugLeaks_Dispose( void );
- void DebugLeaks_StartSession( UInt32 maxItemsToTrack, ConstStr255Param sessionName);
- void DebugLeaks_StopSession( void );
- void DebugLeaks_SuspendSession( void );
- void DebugLeaks_ResumeSession( void );
-
- void DebugLeaks_RememberHandle( Handle theHandle, DebugLeaksHowAllocated how, const char *srcFileName);
- void DebugLeaks_ForgetHandle( Handle theHandle );
-
- void DebugLeaks_RememberPtr( void *thePtr, DebugLeaksHowAllocated how, const char *srcFileName);
- void DebugLeaks_ForgetPtr( void *thePtr );
-
- void DebugLeaks_RememberAEDesc( AEDesc *theAEDesc, DebugLeaksHowAllocated how, const char *srcFileName);
- void DebugLeaks_ForgetAEDesc( AEDesc *theAEDesc );
-
- void DebugLeaks_RememberObject( void *object, UInt32 size);
- void DebugLeaks_ForgetObject( void *object );
-
- Boolean DebugLeaks_ItemIsRemembered( const void *handleOrPtr );
-
- void DebugLeaks_RefreshStackInfo( void *handleOrPtr );
-
-
- void DebugLeaks_DisposingHandle( Handle h );
- void DebugLeaks_DisposingPtr( Ptr p );
-
- void DebugLeaks_IgnoreItem( const void *item);
-
- #else // ] USE_DEBUG_LEAKS [
-
-
- #define DebugLeaks_Init() {/* nothing */}
- #define DebugLeaks_Dispose() {/* nothing */}
- #define DebugLeaks_StartSession(x, y) {/* nothing */}
- #define DebugLeaks_StopSession() {/* nothing */}
- #define DebugLeaks_SuspendSession() {/* nothing */}
- #define DebugLeaks_ResumeSession() {/* nothing */}
-
- #define DebugLeaks_RememberHandle(x, y, s) {/* nothing */}
- #define DebugLeaks_ForgetHandle(h) {/* nothing */}
- #define DebugLeaks_RememberPtr( x, y, s) {/* nothing */}
- #define DebugLeaks_ForgetPtr( x ) {/* nothing */}
- #define DebugLeaks_RememberAEDesc(x, y, s) {/* nothing */}
- #define DebugLeaks_ForgetAEDesc(x) {/* nothing */}
- #define DebugLeaks_RememberObject( x, y) {/* nothing */}
- #define DebugLeaks_ForgetObject( x ) {/* nothing */}
- #define DebugLeaks_ItemIsRemembered( x ) ( false )
- #define DebugLeaks_RefreshStackInfo( x ) {/* nothing */}
-
- #define DebugLeaks_DisposingHandle( x ) {/* nothing */}
- #define DebugLeaks_DisposingPtr( x ) {/* nothing */}
-
- #define DebugLeaks_IgnoreItem( x ) {/* nothing */}
-
-
- #endif // ] USE_DEBUG_LEAKS
-
-
-
- #ifdef __cplusplus
- }
- #endif
-
-
-
-
-
-
-
-
-
-
-
-